#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
ComfyUI 依赖管理工具 - 命令行版本
"""

import sys
import os
from pathlib import Path

# 导入统一的环境配置
from env_setup import setup_environment, ENV_CONFIG, COMFYUI_DIR

# 使用统一的环境配置
ENV_CONFIG = setup_environment()

from depend_manager import DependencyManager

def find_comfyui_dir():
    """自动查找 ComfyUI 目录（使用统一配置）"""
    comfyui_dir = COMFYUI_DIR
    print(f"调试信息: 查找 ComfyUI 路径: {comfyui_dir}")
    print(f"调试信息: 路径是否存在: {comfyui_dir.exists()}")
    if comfyui_dir.exists():
        return comfyui_dir
    # 兼容大小写
    base = ENV_CONFIG['PROJECT_ROOT']
    for d in base.iterdir():
        if d.is_dir() and d.name.lower() == "comfyui":
            print(f"调试信息: 找到兼容目录: {d}")
            return d
    return None

def main():
    """主函数"""
    print("=" * 50)
    print("ComfyUI 依赖管理工具 - 命令行版本")
    print("=" * 50)
    
    workspace_path = find_comfyui_dir()
    if not workspace_path:
        print("❌ 未找到 ComfyUI 目录，请确保 ComfyUI 与 scripts/Scripts 同级")
        return
    
    # 初始化依赖管理器
    manager = DependencyManager()
    
    while True:
        print("\n请选择操作:")
        print("1. 检查依赖状态")
        print("2. 安装缺失依赖")
        print("3. 更新所有依赖")
        print("4. 清理缓存")
        print("5. 显示系统信息")
        print("6. 显示主菜单")
        print("0. 退出")
        
        try:
            choice = input("\n请输入选项 (0-6): ").strip()
            
            if choice == "0":
                print("再见！")
                break
            elif choice == "1":
                print("\n正在检查依赖状态...")
                # 这里可以添加检查依赖的逻辑
                print("✅ 依赖检查完成")
            elif choice == "2":
                print("\n正在安装缺失依赖...")
                manager.install_dependencies()
            elif choice == "3":
                print("\n正在更新所有依赖...")
                # 这里可以添加更新依赖的逻辑
                print("✅ 依赖更新完成")
            elif choice == "4":
                print("\n正在清理缓存...")
                # 这里可以添加清理缓存的逻辑
                print("✅ 缓存清理完成")
            elif choice == "5":
                print("\n系统信息:")
                print(f"工作目录: {workspace_path}")
                print(f"Python路径: {manager.python_path}")
                print(f"备份目录: {manager.backup_dir}")
            elif choice == "6":
                manager.show_menu()
            else:
                print("无效选项，请重新选择")
                
        except KeyboardInterrupt:
            print("\n\n操作被用户中断")
            break
        except Exception as e:
            print(f"\n发生错误: {e}")

if __name__ == "__main__":
    main() 